-- Step 1 filter attribute value
SELECT Id AS [Value]
, Name AS [Text]
FROM RegistrationTemplate
WHERE IsActive=1
ORDER BY ModifiedDateTime DESC

-- Step 2 filter attribute value
{% assign RegistrationTemplateId = 'Global' | PageParameter:'RegistrationTemplateId' %}
{% if RegistrationTemplateId != empty %}

SELECT Id AS [Value]
, Name AS [Text]
FROM RegistrationInstance
WHERE RegistrationTemplateId={{ RegistrationTemplateId }}
AND IsActive=1

{% endif %}

-- Step 3 filter attribute value
{% assign RegistrationInstanceId = 'Global' | PageParameter:'RegistrationInstanceId' %}
{% if RegistrationInstanceId != empty %}

SELECT rr.Id AS [Value]
, p.NickName + ' ' + p.LastName + ' (registered by ' + rp.NickName + ' ' + p.LastName + ')' AS [Text]
FROM RegistrationRegistrant rr 
    INNER JOIN PersonAlias pa ON pa.Id=rr.PersonAliasId 
    INNER JOIN Person p ON p.Id=pa.PersonId 
    INNER JOIN Registration r ON r.Id=rr.RegistrationId 
    INNER JOIN PersonAlias rpa ON rpa.Id=r.PersonAliasId 
    INNER JOIN Person rp ON rp.Id=rpa.PersonId
WHERE r.RegistrationInstanceId={{ RegistrationInstanceId }}

{% endif %}

-- Step 4 filter attribute value
{% assign RegistrationTemplateId = 'Global' | PageParameter:'RegistrationTemplateId' %}
{% if RegistrationTemplateId != empty %}

SELECT Id AS [Value]
, Name AS [Text]
FROM RegistrationTemplateFee
WHERE RegistrationTemplateId={{ RegistrationTemplateId }}
AND IsActive=1

{% endif %}

-- Step 5 filter attribute value
{% assign RegistrationTemplateFeeId = 'Global' | PageParameter:'RegistrationTemplateFeeId' %}
{% assign RegistrationRegistrantId = 'Global' | PageParameter:'RegistrationRegistrantId' %}
{% if RegistrationTemplateFeeId != empty %}

SELECT Id AS [Value]
, Name AS [Text]
FROM RegistrationTemplateFeeItem
WHERE RegistrationTemplateFeeId={{ RegistrationTemplateFeeId }}
AND IsActive=1
AND Cost=0
AND Id NOT IN
(
    SELECT RegistrationTemplateFeeItemId FROM RegistrationRegistrantFee WHERE RegistrationRegistrantId={{ RegistrationRegistrantId }}
)

{% endif %}